#ifndef _PAGE_INFO_HPP
#define _PAGE_INFO_HPP

// static char *infoStr[500] = {0};
lv_obj_t *infoBody;
lv_label_t *infoLabel;

static int pageInfoWidth = CONFIG_SCREEN_WIDTH - 50;
static int pageInfoHeight = CONFIG_SCREEN_HEIGHT - CONFIG_TOP_STATUS_BAR_HEIGHT - 50;

void pageInfoInit();
void pageInfoAddInfo();
void pageInfoDel();
void pageInfoAdd(char *info);
static void pageCreate();

// void testInfo() {
// 	for(int i = 0; i < 10; i ++) {
// 		char *str[100];
// 		sprintf(str, "%d, test info Add...test info Add...test info Add...test info Add...test info Add...", i);
// 		pageInfoAdd(str);
// 		vTaskDelay(pdMS_TO_TICKS(1000));
// 	}
// }

void pageInfoDel() {
	// lv_obj_del_async(pageInfo);
	lv_obj_add_flag(pageInfo, LV_OBJ_FLAG_HIDDEN);
	vTaskDelay(pdMS_TO_TICKS(50));
	lv_obj_add_flag(pageInfo, LV_OBJ_FLAG_HIDDEN);
	// lv_obj_clean(pageMain);
}

static void pageCreate() {
	pageInfo = lv_obj_create(pageMain);
	lv_obj_remove_style_all(pageInfo);
	lv_obj_set_style_radius(pageInfo, 3, 0);
	lv_obj_set_style_bg_opa(pageInfo, LV_OPA_COVER, 0);
	lv_obj_set_style_bg_color(pageInfo, LV_COLOR_WHITE, 0);
	lv_obj_set_scrollbar_mode(pageInfo, LV_SCROLLBAR_MODE_AUTO);
	lv_obj_set_size(pageInfo, pageInfoWidth, pageInfoHeight);
	lv_obj_center(pageInfo);
	// lv_obj_set_style_pad_all(pageInfo, 10, 0);
	lv_obj_set_style_outline_color(pageInfo, LV_COLOR_WHITE, 0);
	lv_obj_set_style_outline_width(pageInfo, 10, 0);
	lv_obj_set_scroll_dir(pageInfo, LV_DIR_VER);

	infoLabel = lv_label_create(pageInfo);
	lv_obj_remove_style_all(infoLabel);
	lv_obj_set_style_width(infoLabel, pageInfoWidth, 0);
	lv_obj_set_style_height(infoLabel, LV_SIZE_CONTENT, 0);
	lv_obj_set_align(infoLabel, LV_ALIGN_TOP_MID);
	lv_label_set_text(infoLabel, "");

	// testInfo();
}

void pageInfoInit() {
	showPage(PAGE_INFO);
	pageCreate();
}

void pageInfoAdd(char *info) {
	// printf("new info = %s\n", info);
	if(currentPage == PAGE_INFO) {
		if(strcmp(lv_label_get_text(infoLabel), "") != 0) {
			lv_label_ins_text(infoLabel, LV_LABEL_POS_LAST, "\n");
		}
		lv_label_ins_text(infoLabel, LV_LABEL_POS_LAST, info);
		vTaskDelay(pdMS_TO_TICKS(100));
		int height = lv_obj_get_height(infoLabel);
		if(height > pageInfoHeight) {
			lv_obj_scroll_to_y(pageInfo, 1000, 0);
		}
	}
}

#endif